package com.muxue.module.ai.mapper.mysql.model;


import com.muxue.common.core.page.PageResult;
import com.muxue.module.ai.controller.model.vo.chatModel.AiChatModelPageReqVO;
import com.muxue.module.ai.mapper.dataobject.model.AiChatModelDO;
import com.muxue.mybatis.core.mapper.BaseMapperX;
import com.muxue.mybatis.core.query.LambdaQueryWrapperX;
import com.muxue.mybatis.core.query.QueryWrapperX;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * API 聊天模型 Mapper
 *
 * @author fansili
 */
@Mapper
public interface AiChatModelMapper extends BaseMapperX<AiChatModelDO> {

//    default AiChatModelDO selectFirstByStatus(Integer status) {
//        return selectOne(new QueryWrapperX<AiChatModelDO>()
//                .eq("status", status)
//                .limitN(1)
//                .orderByAsc("sort"));
//    }

    default PageResult<AiChatModelDO> selectPage(AiChatModelPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<AiChatModelDO>()
                .likeIfPresent(AiChatModelDO::getName, reqVO.getName())
                .eqIfPresent(AiChatModelDO::getModel, reqVO.getModel())
                .eqIfPresent(AiChatModelDO::getPlatform, reqVO.getPlatform())
                .orderByAsc(AiChatModelDO::getSort));
    }

    default List<AiChatModelDO> selectList(Integer status) {
        return selectList(new LambdaQueryWrapperX<AiChatModelDO>()
                .eq(AiChatModelDO::getStatus, status)
                .orderByAsc(AiChatModelDO::getSort));
    }

}
